package com.jmxcfc.blfsc.common.common.enums;

/**
 * 处理状态(blfsc模块响应的结果)
 * @author pbs
 */
public enum ProcessStateEnum {

    //数据落表时初始状态
    //INIT("INIT","初始化"),
    /**
     * 调用厂商成功非终态
     * 短信模块:(对方响应交互状态是成功,但是短信的业务状态需要JMX主动获取)
     * 签章模块:处理中
     */
    PROCESSING("PROCESSING", "处理中"),
    /**
     * 异步等待通知:调用厂商成功,非终态
     * 短信模块:(对方响应交互状态是成功,但是短信状态等待对方异步通知)、
     */
    NOTIFICATION("NOTIFICATION", "有对接异步接口,等待接收对方异步状态通知"),
    /**
     * 成功(终态)
     */
    SUCCESS("SUCCESS","成功"),
    /**
     * 失败(终态)
     */
    FAILURE("FAILURE","失败"),
    /**
     * 异常状态
     */
    EXCEPTION("EXCEPTION","异常"),
    /**
     * 预留的状态:重复的业务流水号(uuid重复)
     */
    REPETITION("REPETITION", "重复流水号");


    /**
     * 状态
     */
    private String status;

    /**
     * 描述
     */
    private String desc;


    ProcessStateEnum(String status, String desc) {
        this.status = status;
        this.desc = desc;
    }

    public String status() {
        return this.status;
    }

    public String desc() {
        return this.desc;
    }


    /**
     * 根据值  获取 枚举
     * @param status
     * @return
     */
    public static ProcessStateEnum getEnumByValue(String status) {
        ProcessStateEnum[] instances = ProcessStateEnum.values();
        for(ProcessStateEnum instance : instances){
            if(instance.status().equals(status)){
                return instance;
            }
        }
        return null;
    }
}
